import pandas as pd


class InsuranceDataSource:
    """保险业务数据源类，提供数据加载功能"""

    def __init__(self):
        self.data = None  # 存储加载的数据（DataFrame格式）

    def load_sample_data(self):
        """加载示例数据（模拟业务数据）"""
        # 示例数据包含：时间、原保费、分保费、自留保费等字段
        data = {
            "period": ["2023Q1", "2023Q2", "2023Q3", "2023Q4", "2024Q1"],  # 报告期
            "original_premium": [1000, 1200, 1300, 1500, 1800],  # 原保费收入（万元）
            "reinsurance_premium": [300, 350, 380, 420, 480],  # 分保费收入（万元）
            "retained_premium": [700, 850, 920, 1080, 1320],  # 自留保费（万元）
            "market_original_total": [5000, 5500, 6000, 6500, 7500],  # 市场原保费总额（万元）
            "first_year_premium": [400, 480, 520, 600, 720],  # 首年保费（万元）
            "policy_count_month1": [500, 550, 600, 650, 700],  # 第1个月末有效保单数
            "policy_count_month13": [420, 470, 510, 560, 610],  # 第13个月末有效保单数
            "agent_count_begin": [100, 110, 120, 130, 140],  # 期初营销员数量
            "agent_count_end": [110, 120, 130, 140, 150],  # 期末营销员数量
            "standard_premium": [900, 1050, 1150, 1350, 1600],  # 标准保费（万元）
            "owner_equity_begin": [3000, 3200, 3500, 3800, 4200],  # 期初所有者权益（万元）
            "owner_equity_end": [3200, 3500, 3800, 4200, 4500]  # 期末所有者权益（万元）
        }
        self.data = pd.DataFrame(data)
        return self.data

    def load_from_file(self, file_path):
        """从CSV文件加载数据（扩展接口）"""
        self.data = pd.read_csv(file_path)
        return self.data